Method and device for remotely controlling robotic pool cleaner

ABSTRACT

A method for remotely operating a robotic pool cleaner may include providing a robotic pool cleaner comprising a housing: a propulsion drive configured to propel the robotic pool cleaner along a surface of a pool; a pump for drawing liquid from the pool into the housing, so as to trap dirt and debris from the surface of the pool into a filter; a controller configured to communicate with a portable communication device, and control the propulsion drive in accordance with commands received from a the portable communication device; using the portable communication device, obtaining one or more characteristics of a surface of the pool; displaying a graphical representation of the pool on a display of the portable communication device; receiving a user input from a user via an input interface of the portable communication device; translating the user input into a command; and transmitting the command to a controller of the robotic pool cleaner, for execution by the robotic pool cleaner.

FIELD OF THE INVENTION

The present invention relates to robotic pool cleaners. More,paticularly, the present invention relates to a method and a device forremotely controlling a robotic pool cleaner.

BACKGROUND OF THE INVENTION

Robotic pool cleaners are well known in the art and have been used formany years. Such robotic pool cleaners typically comprise a hollowhousing or body, a pump for drawing water into the housing from one ormore inlets, usually located on the bottom of the housing, one or morefilters for filtering the water and entrapping debris, one or moreoutlets for expelling the filtered water, and a drive for propelling therobot on the surface of the pool.

The pump in many cases is commonly an electric pump located within thehousing of the pool cleaner, but may be external to the cleaner andconnected to the housing by a flexible hose. The drive commonlycomprises an electric motor within the housing of the pool cleaner. Somerobotic pool cleaners are known to have a drive that employs a water jettype propulsion, the jet being produced by the efflux of the water pump.Although pool cleaners are commonly designed to operate in a random orpre-programmed fashion, some pool cleaners incorporate an external,manual control system, whereby a user can control the direction oftravel of the cleaner, command the pool cleaner to turn in a selecteddirection, or turn the pool cleaner on or off. However, such controlsusually provide limited functionality.

SUMMARY OF THE INVENTION

There is thus provided, in accordance with an embodiment of the presentinvention, at method for remotely operating a robotic pool cleaner. Themethod may include providing a robotic pool cleaner comprising ahousing; a propulsion drive configured to propel the robotic poolcleaner along a surface of a pool; a pump for drawing liquid from thepool into the housing, so as to trap dirt and debris from the surface ofthe pool into a filter; a controller configured to communicate with aportable communication device, and control the propulsion drive inaccordance with commands received from a the portable communicationdevice. The method may also include using the portable communicationdevice, to obtain one or more characteristics of a surface of the pool;to display a graphical representation of the pool on a display of theportable communication device; to receive a user input from a user viaan input interface of the portable communication device; to translatethe user input into a command; and to transmit the command to acontroller of the robotic pool cleaner, for execution by the roboticpool cleaner.

In some embodiments of the invention, obtaining one or morecharacteristics of a surface of the pool may include receiving datatransmitted from the robotic pool cleaner or receiving data input via auser input interface of the portable communication device.

In some embodiments of the invention, the method may also include usingthe portable communication device, to display a current location of thepool cleaner in the pool on the graphical representation of the pool asdisplayed on the display.

In some embodiments, the user input may include indication of a desiredtarget position in the pool for the pool cleaner to travel to.

In some embodiments, the user input may include indication of aparticular path to be traveled by the pool cleaner.

According to some embodiments, the user input may include indication ofa pattern of movement.

In some embodiments, the user input may include indication to maintain aposition of the pool cleaner within or outside an indicated zone of thepool.

In some embodiments, the user input may be selected from the group ofinputs consisting of tapping, sliding a finger, making a gesture,inputting text using a real or virtual keyboard, and providing vocalcommand.

In some embodiments, the user input may include a homing instruction andwherein the command causes the pool cleaner to travel to a currentlocation of the user.

In some embodiments, the obtaining of said one or more characteristicsof a surface of the pool may include recording movement of the useraround a perimeter of the pool.

In some embodiments, the method may also include using a camera of theportable communication device for the user input.

There is also provided, according to some embodiments of the invention,a robotic pool cleaner. The robotic pool cleaner may include a housing;a propulsion drive configured to propel the robotic pool cleaner along asurface of a pool; a pump for drawing liquid from the pool into thehousing, so as to trap dirt and debris from the surface of the pool intoa filter; a controller configured to communicate with a portablecommunication device, and control the propulsion drive in accordancewith commands received from a the portable communication device. Thecontroller may be further configured to receive, and cause the roboticpool cleaner to execute, a command from a portable communication devicethat has obtained one or more characteristics of a surface of the pool;displayed a graphical representation of the pool on a display of theportable communication device; received a user input from a user via aninput interface of the portable communication device; translated theuser input into a command; and transmitted the command to a controllerof the robotic pool cleaner, for execution by the robotic pool cleaner.

There is also provided, according to some embodiments of the invention,a non-transitory computer readable medium for remotely operating arobotic pool cleaner, having stored thereon instructions that whenexecuted on a processor of will cause the processor to: obtain one ormore characteristics of a surface of a pool; display a graphicalrepresentation of the pool on a display; receive a user input from auser via an input interface; translate the user input into a command;and transmit the command via a communication channel to a controller ofthe robotic pool cleaner, for execution by the robotic pool cleaner.

BRIEF DESCRIPTION OF THE DRAWINGS

In order for the present invention, to be better understood and for itspractical applications to be appreciated, the following Figures areprovided and referenced hereafter. It should be noted that the Figuresare given as examples only and in no way limit the scope of theinvention. Like components are denoted by like reference numerals.

FIG. 1A schematically illustrates a robotic pool cleaner, in accordancewith an embodiment of the present invention.

FIG. 1B schematically illustrates a bottom side of the robotic poolcleaner shown in FIG. 1A.

FIG. 2 is a flowchart depicting a method of navigation of a robotic poolcleaner, in accordance with an embodiment of the present invention.

FIG. 3A schematically illustrates measurement of dimensions of arectangular pool during execution of the navigation method depicted bythe flowchart in FIG. 2.

FIG. 3B schematically illustrates mapping a perimeter of a rectangularpool during execution of the navigation method depicted by the flowchartin FIG. 2.

FIG. 3C schematically illustrates designation or a reference point asdetermination of a location of an obstacle relative to the referencepoint during execution of the navigation method depicted by theflowchart in FIG. 2.

FIG. 3D schematically illustrates detection of an obstacle in a cornerduring execution of the navigation method depicted by the flowchart inFIG. 2.

FIG. 4 schematically illustrates selection of a direction of travelafter encountering a curved wall during execution of the navigationmethod depicted by the flowchart in FIG. 2.

FIG. 5 is a flowchart depicting a method of navigating a robotic poolcleaner while ascending or descending a wall, in accordance with anembodiment of the present invention.

FIG. 6 schematically illustrates a robotic pool cleaner that isexecuting the method shown in FIG. 5.

FIG. 7 illustrates a robotic pool cleaner, remotely controlled by ahand-held portable communication device (e.g., a smartphone), accordingto some embodiments of the present invention.

FIG. 8 illustrates method and device for remotely controlling a roboticpool cleaner according to some embodiments of the present invention.

FIG. 9 illustrates a smartphone with GUI, of a control application for apool cleaner, and a cooperating smart-watch, according to someembodiments of the present invention.

FIG. 10 illustrates a smartphone with GUI of a control application for apool cleaner, according to some embodiments of the present invention.

FIG. 11 illustrates a method for remotely operating a robotic poolcleaner, according to some embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the invention.However, it will be understood by those of ordinary skill in the artthat the invention may be practiced without these specific details. Inother instances, well-known methods, procedures, components, modules,units and/or circuits have not been described in detail so as not toobscure the invention.

Although some embodiments of the invention are not limited in thisregard, discussions utilizing terms such as, for example, “processing,”“computing,” “calculating,” “determining,” “establishing”, “analyzing”,“checking”, or the like, may refer to operation(s) and/or process(es) ofa computer, a computing platform, a computing system, hardwarecircuitry, or other electronic computing device, that manipulates and/ortransforms data represented as physical (e.g., electronic) quantitieswithin the computer's registers and/or memories into other datasimilarly represented as physical quantities within the computer'sregisters and/or memories or other information non-transitory storagemedium(e.g., a memory) that may store instructions to cause a processoror processors to perform operations and/or processes. Althoughembodiments of the invention are not limited in this regard, the terms“plurality” and “a plurality” as used herein may include, for example,“multiple” or “two or more”. The terms “plurality” or “a plurality” maybe used throughout the specification to describe two or more components,devices, elements, units, parameters, or the like. Unless explicitlystated, the method embodiments described herein are not constrained to aparticular order or sequence. Additionally, some of the described methodembodiments or elements thereof can occur or be performedsimultaneously, at the same point in time, or concurrently. Unlessotherwise indicated, the conjunction “or” as used herein is to beunderstood as inclusive (any or all of the stated options).

Some embodiments of the invention may include an article such as acomputer or processor readable medium, or a computer or processornon-transitory storage medium, such as for example a memory, a diskdrive, or a USB flash memory, encoding, including or storinginstructions, e.g., computer-executable instructions, which whenexecuted by a processor or controller, carry out methods disclosedherein.

As used herein, a pool may refer to a swimming pool, or another type ofpool or tank that is configured to be filled with a liquid such aswater. The pool surface refers to surfaces of the pool that the roboticpool cleaner is configured to clean. For example, where the robotic poolcleaner is configured to clean the floor or bottom of the pool, the poolsurface refers only to the floor. Where the robotic pool cleaner is alsoconfigured to clean all or part of substantially vertical or steeplysloped walls of the pool, the pool surface refers also to those parts ofthe wall that are to be cleaned.

As used herein, a sensed feature of travel refers to sensed motion ofthe robotic pool cleaner or of a part of a propulsion system of therobotic pool cleaner during motion of the robotic pool cleaner, a sensedposition or orientation of robotic pool cleaner, monitored power that isprovided to a motor of the propulsion system, a sensed distance from anobject during travel, or another feature that is related to travel ornavigation of me robotic pool cleaner.

As used herein, a characteristic of the pool surface that is to beassessed refers to a characteristic that is derivable from a sensedfeature of travel of the robotic pool cleaner and that is expected toremain constant, at least during a single session during which therobotic pool cleaner is operating to clean the pool. For example,characteristics to be assessed may include dimensions of the pool, ashape of the pool, traction (e.g., limits of traction) of the roboticpool cleaner on the pool surface, a slope of a pool bottom, a location,size, or shape of an obstacle that impedes or otherwise affects motionof the robotic pool cleaner, or another similar constant characteristic.In particular, a feature or object that is detectable primarily byimaging, the pool surface and that does not affect movement of therobotic pool cleaner (e.g., the presence of dirt, debris, discoloration,or similar features) is not considered herein to be included amongassessed characteristics of the pool surface.

A parameter of operation refers to a parameter that a controller of therobotic pool cleaner utilizes when operating the pool cleaner to cleanthe pool. For example, a parameter may include a length of time, amaximum speed, a direction of travel, power that is applied to apropulsion motor of suction pump, a rate of outflow from an outflowport, or another parameter of operation.

For example, assessed pool characteristics may include dimensions of thepool. The robotic pool cleaner may be configured to travel along a pathin such a manner that monitoring of the motion reveals one or moredimensions of the pool.

When traveling within the pool during assessment of a characteristic ofthe pool or pool surface, the robotic pool cleaner (e.g., a controllerof the robotic pool cleaner) may monitor motion of the robotic poolcleaner. For example, a distance of motion or displacement may bemeasured directly (e.g., optically detected motion along a poolsurface), or may be measured indirectly (e.g., by measuring rotation ofa wheel or track of the robotic pool cleaner, of a part of atransmission, or of a propulsion motor of the robotic pool cleaner). Aturning angle or rate of turning may be measured by, or derived frommeasurements by, a compass, gyroscope, accelerometers (e.g., displacedfrom an axis of turning of the robotic pool cleaner), or other device. Aproximity to a surface (e.g., a wall or obstacle) may be measured by arangefinder or proximity sensor. A slope may be measured by a tiltsensor, or other suitable sensor. In some cases, a depth below the watersurface may be derived by measurements by a pressure gauge, or may bemeasured directly by a sensor that measures a distance to the watersurface. The robotic pool cleaner may be configured to operate apropulsion motor or suction pump, e.g., at predetermined intervals, inresponse to a sensed condition, or otherwise, to assess a characteristicrelated to dynamic operation of the robotic pool cleaner. For example,the robotic pool cleaner may be configured to increase the speed ofrotation of its wheels until slipping is detected (e.g., by comparing aspeed of rotation with electrical power consumption of the propulsionmotor, or otherwise).

During traveling, the robot pool cleaner may monitor its displacement(e.g., distance traveled and direction of travel) during each of aplurality of segments of the route traveled. For example, a segment maybe considered to include all travel along a substantially straight line(e.g., with no turning detected). Alternatively or in addition, motionalong a straight line may be divided into segments (e.g., atpredetermined time intervals, or otherwise). The robotic pool cleanermay then be configured to calculate its current position by vectoraddition of the displacements during the various segments. A location ofzero displacement may be defined by a user of the robotic pool cleaner(e.g., by operation of a control), may be determined by an event (e.g.,beginning of operation, an encounter with a wall or event), orotherwise.

For example, in the simple case of a pool with a rectangular shape, therobotic pool cleaner may be configured to, upon first encountering awall of the pool, to travel away from the wall in a direction that issubstantially perpendicular to the wall. (An encounter with the wall maybe detected by applying one or more techniques known in the art. Suchtechniques include using a proximity or contact sensor to sense thepresence of the wall, detecting an inability to continue forward motion,or another to technique.) The perpendicular travel may continue untilencountering an opposite wail. During travel along the perpendicularpath, the robotic pool cleaner may monitor the distance traveled. Forexample, the robotic pool cleaner may measure a total rotation angle, orcount a total number of rotations of, of a propelling wheel or of arotating part of a transmission for transmission of power from a motorto a propelling wheel, track, or other propulsion mechanism. A speed oftravel may be monitored, e.g., by monitoring a speed of rotation of awheel or other component of a motor, transmission, or propulsionmechanism, or measured directly by measuring a speed of flow of water inthe pool relative to the robotic pool cleaner, and a time of travel. Adistance may be measured with reference to one or more local (e.g.,relative to one or more local beacons, reference devices, landmarks, orother reference points), regional, or global guidance systems (e.g.,such as the Global Positioning System (GPS) or another satellite basedsystem—hereinafter referred to, for brevity, as “GPS”). A distance maybe measured monitoring relative movement to features or texture of thepool surface or to markings on the pool surface (e.g., similar tooperation of an optical mouse). After encountering the opposite wall,the robotic pool cleaner may travel in a direction that is perpendicularto the direction between the first two walls in order to similarlymeasure the distance between the two other walls of the rectangularpool.

As another example, the robotic pool cleaner may be configured to travelalong the perimeter of the pool. For example, the robotic pool cleanermay include a sensor that senses a distance of the robotic pool cleanerfrom the nearest wall of the pool. For example, the distance sensor mayinclude a proximity sensor or a rangefinder. The robotic pool cleanermay start to travel parallel to the wall at a predetermined distance(e.g., less than one meter, in some cases, less than 10 centimeters)from the wall. The robotic pool cleaner may control its motion (e.g.,steer right or left,) so as to maintain a substantially constantdistance from the wall. While traveling along the pool wall, the roboticpool cleaner may monitor the distance travelled. In addition, therobotic pool cleaner may include one or more sensors that may beoperated to sense an angle of a turn, or a rate of turning. Such sensorsmay include, for example, a compass or magnetometer, a gyroscope, anaccelerometer (e.g., that is displaced from an axis of rotation), oranother sensor. Thus, the robotic pool cleaner may utilize some or allof the sensed motions to construct a map of the perimeter of the pool.Traveling along the perimeter may enable determining dimensions of thepool when the pool is nonrectangular (e.g., polygonal, round, oval,kidney shaped, or otherwise shaped). In some cases, after using thedetermined perimeter to calculate an operating time, the perimeter maybe stored for later reference. For example, the determined perimeter maybe utilized during selection of a direction of travel after encounteringa wall.

The robotic pool cleaner may calculate the value of an operationparameter in the form of operating time in accordance with the measureddimensions. An operating time for the robotic pool cleaner may beselected such that operation of the robotic pool cleaner enablescleaning of all parts of the pool surfaces. (As used herein, poolsurfaces refer to the floor and walls of the pool.) For example,calculation of an operating time may be based on one or more of the areaof the pool surfaces, a rate at which the robotic pool cleaner cleansthe pool surfaces, a pattern of travel of the pool surfaces, or otherassessed characteristics. A calculated operating time may also take intoconsideration other factors (e.g., that are input by an operator). Suchfactors may include, for example, usage of the pool (e.g., number ofpeople who use the pool, their ages, whether the pool is covered whennot in use, or other factors related usage), time elapsed since aprevious cleaning, environmental factors (e.g., prevalence of dust inthe air, nearby vegetation, winds, precipitation, or other environmentalfactors), or other considerations.

For example, an algorithm may calculate operating time as proportionalto area of the pool, regardless of shape (a proportionality constant maybe fixed for all circumstances, or may be selectable in accordance withone or more other factors or considerations). For example, the area maybe calculated using a formula for a simple regular shape, or may becalculated by numerical integration for a complex or irregular shape. Analgorithm may take into account a shape of the pool (e.g., variations ina motion pattern as appropriate for a particular shape), or otherfactors.

Determination of a pool characteristic may enable selection of a travelpath for the robotic pool cleaner on the basis of the shape or contourof the wall. For example, when the robotic pool cleaner encounters awall during cleaning, the pool cleaner may climb the wall to the watersurface (e.g., at an angle to the vertical). When the robotic poolcleaner reaches the water surface, the robotic pool cleaner may descendthe wall along a path that is laterally (e.g., horizontally displaced)from the path of the robotic pool cleaner when climbing the wall. Whenthe pool is rectangular and upon descending along the wall to the bottomof the pool, the robotic pool cleaner may travel away from the wallalong the floor of the pool in a direction that is perpendicular to thewall. Alternatively or in addition, upon encountering a wall whiletraveling along the floor of the pool, the robotic pool cleaner may beconfigured to travel a short distance away from the wall at apredetermined angle (e.g., 45° or another angle) until the robotic poolcleaner is laterally displaced by a predetermined distance (e.g.,parallel to the wall). The robotic pool cleaner may then turn and travelaway from the wall in a direction that is substantially perpendicular tothe wall.

When the pool is nonrectangular, the direction of departure from thewall may be selected on the basis of a curvature or other property ofthe wall at the point of departure, and may not necessarily beperpendicular to the wall. For example, the direction of departure maybe advantageously selected in a manner that enables efficient coverageof the pool surfaces by the robotic pool cleaner.

An assessed pool characteristic may include a slope of the floor of thepool. When traveling in the pool, the robotic pool cleaner may map aslope of the floor of the pool. For example, when traveling within thepool, one or more tilt sensors may be operated to detect a local slopeof the floor (e.g., an angular deviation of the pool floor from thehorizontal), a direction or orientation of the slope, or mother orrelated quantity that defines a slope.

The assessed local slope may be utilized to determine an amount of powerthat is to be provided to a propulsion moor of the robotic pool cleaner.For example, traveling upslope, or turning to travel in an upslopedirection, may require more propulsion power than travelling, or turningto travel, along a level floor or downslope.

An assessed pool characteristic may include a surface character the poolsurfaces. For example, the robotic pool cleaner may be configured tomeasure a maximum static friction force between the wheels of therobotic pool cleaner and the pool surface. Similarly, the robotic poolcleaner may be configured to measure the maximum speed of rotation of apropulsion wheel (to he understood herein as including a wheel, tire,track, or other surface or structure that is rotated by rotation of apropulsion wheel). A measured maximum static friction force may beanalyzed to yield a coefficient of friction between the wheels and thepool surface, or another similar or equivalent characteristic of thepool surface.

For example, a motor of the robotic pool cleaner may be configured toenable measurement of a rotational speed of the motor. For example, ifthe motor is a direct current electric motor of the brushless type, themotor may be driven by a pulse width modulated signal and providefeedback regarding the rotational speed. Alternatively, a brush typemotor may be provided with a suitable speed sensor. A motor controllerof the robotic pool cleaner may thus obtain the rotational speed of themotor. The motor controller is configured to provide a controllablelevel of electric power to the motor. Thus, the motor controller or aprocessor may monitor the electric power that is required to maintain aparticular speed. As long as the load on the motor is constant (e.g.,when the wheel surface is held to the pool surface by static friction),the speed of rotation increases approximately linearly with the electricpower. However, when the wheels of the robotic pool cleaner begin toslip relative to the pool surface, the rotational speed may suddenlyincrease, or may increase at a rate that is nonlinear with respect tothe applied power. Furthermore, when the wheels are slipping, therobotic pool cleaner may no longer travel in the direction of rotationof the wheels. Measurement of the ratio of increase in rotational speedand the increase in electric power to the motor may thus enabledetection of the wheel rotation speed at which static friction isovercome. Further analysis may yield a coefficient of friction, or otheranother characteristic of the pool surface.

Information regarding the pool surface characteristics may be utilizedto control operating parameters of the suction pump and motor. Forexample, when slipping may be of concern during operation of the roboticpool cleaner, the suction that is provided by the suction pump may beincreased to provide increased traction. As another example, the speedof rotation of the wheels may be controlled to be sufficiently slow soas to prevent slipping (e.g., to enable accurate tracking of a distancetravelled), or a period of time of an operation (e.g., operation at ornear the water surface) may be adjusted to prevent uncontrolled slippingor other motion. Situations that may require adjustment of operatingparameters may include turning and climbing walls.

A robotic pool cleaner may be configured to designate a reference pointwithin the pool. The robotic pool cleaner may then be commanded at alater time to directly return to the reference point.

For example, the reference point may be designated to be a point atwhich the robotic pool cleaner is first placed on a pool surface, or atwhich the robotic pool cleaner is activated or begins operation afterplacement on the pool surface. In some cases, the reference point may bedesignated after the robotic pool cleaner has determined one or morepool characteristics. Alternatively or in addition, the reference pointmay be designated by an operator of the robotic pool cleaner (e.g., byoperation of a control) when the robotic pool cleaner is at a locationthat the operator wishes to designate as a reference point. For example,the operator may wish to designate a point in the pool at which accessto the robotic pool cleaner is convenient (e.g., at the shallow end ofthe pool, or near a stairway or ladder in the pool).

After designation of the reference point, the robotic pool cleaner maythen monitor its subsequent motion so as to continually calculate itscurrent position relative to the reference point as it travels over thepool surfaces. For example, the robotic pool cleaner may be configured,e.g., when the robotic pool cleaner is travelling in a straight line, tomonitor its speed of travel and the time elapsed during travel. Thespeed of travel in a single (straight line) direction may be derivedfrom a measured rotation of a motor, transmission, or wheel.Alternatively or in addition, the speed of travel relative to a poolsurface may be measured directly using an appropriate sensor (e.g., anoptical or acoustic sensor). When turning, the angle of a turn may bedetected using a compass, gyroscope, or other orientation-sensitivesensor. Alternatively or in addition, the robotic pool cleaner may beconfigured to continually monitor a displacement from the referencepoint (e.g., in additional to absolute orientation, e.g., as measured bya compass). For example, an optical sensor may be configured tocontinually measure displacement (e.g., in a manner similar to operationof an optical mouse).

Thus, the robotic pool cleaner may be configured to directly return(e.g., along the shortest route, e.g., a straight line in a pool whereall walls are either flat or convex) to the reference point upongeneration of a command to do so. For example, the command may begenerated automatically by a controller of the robotic pool cleaner whencleaning of the pool is complete (e.g., after a time of operation thatis based on pool dimensions, or otherwise) or when servicing orattention by an operator of the robotic pool cleaner is required.Alternatively or in addition, the command may be generated by theoperator of the robotic pool cleaner. Directly returning to thereference point may facilitate extraction of the robotic pool cleanerfrom the pool upon completion of cleaning or for servicing. For example,the reference point may be at a point of the pool where there isconvenient access to the robotic pool cleaner by an operator who islocated outside of the pool (e.g., at a shallow end of the pool).

In some cases, two or more reference points may be designated. Therobotic pool cleaner may be configured to continuously monitor itsposition relative to each of the reference points. The robotic poolcleaner may be commanded to return to any one of the designatedreference points.

The reference point may also enable identifying a location of anobstacle or of another location where operation of the robotic poolcleaner is anomalous or deviates from expected operation (e.g., ascaused by a local property or anomaly of the pool surface, or by anotherlocation-related deviation). Thus, during future operation, travel ofthe robotic pool cleaner may be controlled so as to avoid the identifiedlocation, or operation of the robotic pool cleaner may be modified whenat that location so as to avoid causing the anomalous behavior.

For example, an obstacle (e.g., a raised drain or another obstacle) maybe detected and its location relative to the reference point may berecorded. An obstacle herein refers to an object or structure (otherthan a wall of the pool) that impedes travel of the robotic poolcleaner. For example, the obstacle may be located near a corner of thepool. When the robotic pool cleaner encounters the corner, the roboticpool cleaner may attempt to turn. However, the presence of the obstaclemay prevent or impede the turning of the robotic pool cleaner. An actualrate of turning may be detected by operation of a compass or gyroscope.A deviation of the actual rate of turning from an expected rate ofturning may be indicative of an obstacle.

A robotic pool cleaner may be configured to monitor its orientation whenclimbing or descending a wall of the pool. The monitored orientation maybe utilized to enable continued operation after falling or slipping froma wall. The monitored orientation may be used to detect the beginning ofa fall. An automatic learning algorithm may utilized monitoredinformation regarding function of the robotic pool cleaner prior to thedetected fall (e.g., motor speed, suction pump operation, or otherparameters) to determine the circumstances that led to the falling. Therobotic pool cleaner may, as a result, be controlled to operatedifferently the next time a wall is climbed or descended in order toprevent, or attempt to prevent, falling. In some cases, when thebeginning of a fall is detected, the suction pump, propulsion motor, orother controllable unit of the robotic pool cleaner may be operated soas to halt or moderate the falling (e.g., by forcing the robotic poolcleaner back toward the wall).

For example, measuring the orientation of the robotic pool cleaner mayinclude one or more of measuring a current orientation of the roboticpool cleaner (e.g., using one or more compasses, gyroscopes, tiltsensors, or other orientation measuring devices), measuring a change orrate of change of an orientation (e.g., using a gyroscope,accelerometer, or other device for measuring a rate of change of anorientation)

Navigation of a robotic pool cleaner as described herein may beadvantageous over other methods of navigation, where data obtained fromsensors is used to direct movement of the pool cleaner according topreset algorithms. As described herein, operation of the robotic poolcleaner may be optimized to a specific shape or size of the pool, andsurface traction. Thus, a length of an operating cycle time may be basedon the size of the pool, or to account for the differing traction andadherence to various pool surfaces or inclination. These characteristicsmay be determined automatically and autonomously by the robotic poolcleaner, without any need for an operator to pre-select such parameters.Motion of the robotic pool cleaner may be monitored to accuratelymonitor its position at all times and to enable the robotic pool cleanerto return to a preset reference point.

FIG. 1A schematically illustrates a robotic pool cleaner, in accordancewith an embodiment of the present invention. FIG. 1B schematicallyillustrates a bottom side of the robotic pool cleaner shown in FIG. 1A.

Robotic pool cleaner 10 is configured to autonomously clean aliquid-filled pool, such as a water-filled swimming pool. Cleaner body12 of robotic pool cleaner 10 may house internal components of roboticpool cleaner 10, and may serve as a surface to which exterior componentsof robotic pool cleaner 10 are mounted.

A locomotion system of robotic pool cleaner 10 may include one or moremotors 28. Motor 28 may be housed inside cleaner body 12 and may drivelocomotion wheels 14 via transmission 20. Transmission 20 may includeone or more shafts, gears, belts, pulleys, levers, or other transmissioncomponents. Locomotion wheels 14 may be provided with tracks 16, orother traction-increasing surfaces or components (e.g., tires, suctioncups, rubber or adhesive surfaces, or other types of components orsurfaces). In some cases, transmission 20 may be controlled so as torotate locomotion wheels 14 on different sides of robotic pool cleaner10 at different rates, e.g., so as to turn robotic pool cleaner 10. Insome cases, different locomotion wheels 14 of robotic pool cleaner 10(e.g., on different sides of robotic pool cleaner 10) may be operated bydifferent, separately controllable, motors 28. In some cases, motor 28may propel robotic pool cleaner 10 by rotating a propeller, operating afin or paddle, or by otherwise creating a fluid jet or propellingrobotic pool cleaner 10.

A cleaning brush 18 may rotate together with, or separate from (e.g., bya mechanism that is separate from the mechanism for rotating) locomotionwheels 14. Cleaning brush 18 may loosen dirt or debris that adheres tothe pool surface, to enable the dirt and debris to be lifted intorobotic pool cleaner 10 by a suction system of robotic pool cleaner 10.

A suction system of robotic pool cleaner 10 may include a suction pump26. For example, suction pump 26 may employ a rotating screw orpropeller mechanism to suck liquid from the pool into intake port 22 onthe bottom surface of robotic pool cleaner 10. As used herein, thebottom or bottom surface of robotic pool cleaner 10 refers to the sideor surface of robotic pool cleaner 10 or of cleaner body 12 that faces apool surface when being operated to clean that pool surface. The liquidthat enters intake port 22 may pass through a filter or trap that isconfigured to trap dirt or debris that flows into intake port 22together with the inflowing liquid. The liquid may then be expelled viaoutflow port 24. For example, outflow port 24 may be located on an uppersurface of robotic pool cleaner 10.

Electrical power for operating one or both of motor 28 and suction pump26, relay be provided by an internal power source (e.g., by a storagebattery or other internal or onboard source) that is housed in cleanerbody 12. Alternatively or in addition, electrical power may be providedby a power source that is external to cleaner body 12. For example, theexternal power source may be connected by a cable to robotic poolcleaner 10. For example, the external power source may be locatedoutside of the pool, or may be configured to float on the water surface.

In some cases, a single motor 28 may drive both suction pump 26 andlocomotion wheels 14. For example, motor 28 may be linked to locomotionwheels 14 and to suction pump 26 by different transmissions. In somecases, the different transmissions may be operated independently of oneanother such that operation of locomotion wheels 14 may be independentof operation of suction pump 26. In some cases,operation of locomotionwheels 14 and of suction pump 26 may be linked. In some cases, suctionpump 26 may be driven by a motor that is separate from motor 28.

Operation of a motor 28 and suction pump 26 may be controlled bycontroller 31. Controller 31 may include one or more components. Some orall components of controller 31 may be located on robotic pool cleaner10. Alternatively or in addition, some or all components of controller31 of robotic pool cleaner 10 may be located on an external unit, e.g.,housed together with an external power supply. When external roboticpool cleaner 10, controller 31 may communicate with components ofrobotic pool cleaner 10 via a cable.

For example, controller 31 may include a processor 32. Processor 22 mayinclude one or more processing units that are configured to operate inaccordance with programmed instructions.

Data storage 34 away include one or more fixed or removable, volatile ornonvolatile, memory or data storage units. Data storage 34 may beutilized, for example, to store programmed instructions for operation ofprocessor 32, data or parameters for utilization by processor 32 (e.g.,as entered by an operator of robotic pool cleaner 10, as obtained bysensors 30, or as obtained from another source, such as it navigation orexternal system with which controller 31 is in communication), orresults of a calculation or operation of processor 32.

Controller 31 may receive sensed data from sensors 30. Sensors 30 mayone or more sensors that are located on robotic pool cleaner 10, orexternal to robotic pool cleaner 10. Sensors 30 may include one or moresensors that enable monitoring movement of robotic pool cleaner 10. Forexample, sensors 30 may include an encoder or rotation sensor thatmeasures a rotation angle or a rotation rate of one or more rotatablecomponents of motor 28, transmission 20, locomotion wheels 14, orsuction pump 26. Sensors 30 may include one or more sensors that areconfigured to measure an orientation, or a rate of change oforientation, of robotic pool cleaner 10. For example, suchorientation-related sensors may include one or more magnetic compasses,gyroscopes, tilt sensors, accelerometers, light sensors, or othersensors configured to sense a characteristic related to orientation ofrobotic pool cleaner 10. Sensors 30 may include one or more proximitysensors or rangefinders that enable sensing of a distance from asurface, such as a pool surface. Such distance sensors may be based onoptical, acoustic, electromagnetic, mechanical, or other appropriatemechanism. Sensors 30 may include a pressure sensor or other sensor formeasuring a depth of robotic pool cleaner 10 below a water surface ofthe pool. Sensors 30 may include a flow sensor for measuring a flow rateof liquid, e.g., in the suction system or relative the water in thepool. Sensors 30 may include a force or torque sensor to measure a forceor torque that is exerted on locomotion wheels 14. In some cases, someor all of sensors 30 may be incorporated into a single inertialnavigation unit or another integrated unit.

Controller 31 may be configured to control and monitor operation ofmotor 28 and suction pump 26. For example, processor 32 of controller 31may operate in accordance with programmed instructions to execute amethod for navigation of robotic pool cleaner 10.

FIG. 2 is a flowchart depicting a method of navigation of a robotic poolcleaner, in accordance with an embodiment of the present invention.

It should he understood with respect to any flowchart referenced hereinthat the division of the illustrated method into discrete operationsrepresented by blocks of the flowchart has been selected for convenienceand clarity only. Alternative division of the illustrated method intodiscrete operations is possible with equivalent results. Suchalternative division of the illustrated method into discrete operationsshould be understood as representing other embodiments of theillustrated method.

Similarly, it should be understood that, unless indicated otherwise, theillustrated order of execution of the operations represented by blocksof any flowchart referenced herein has been selected for convenience andclarity only. Operations of the illustrated method may be executed in analternative order, or concurrently, with equivalent results. Suchreordering of operations of the illustrated method should be understoodas representing other embodiments of the illustrated method.

Pool cleaner navigation method 100 may be executed by processor 32 ofcontroller 31 of robotic pool cleaner 10. For example, execution of poolcleaner navigation method 100 may commence automatically prior tocleaning a pool. For example, execution of pool cleaner navigationmethod 100 may begin when robotic pool cleaner 10 is activated andresting on the floor of the pool in an upright orientation (e.g., whenthe bottom of robotic pool cleaner 10 that includes intake port 22 isfacing the floor of the pool). Alternatively or in addition, executionof pool cleaner navigation method 100 may commence upon receiving acommand (e.g., entered via a control on robotic pool cleaner 10, on aseparate unit that is connected to robotic pool cleaner 10, or via aremote device that is in communication with robotic pool cleaner 10 orthe separate unit) from an operator of robotic pool cleaner 10. Forexample, an outer surface of cleaner body 12 or of handle 25 may includeone or more user-operable controls. The controls (e.g., pushbuttons orswitches, pressure sensitive surfaces, optically, thermally, orelectromagnetically operated controls, or other suitable controls) maybe made waterproof or may be covered by a waterproof cover that issufficiently flexible or transparent to enable access to the controls.The controls may include a corresponding display screen or controlpanel.

One or more pool surface characteristics may be measured (block 110).For example, pool surface characteristics may include a size of thepool, a shape of the perimeter of the pool, location of obstacles on thefloor of the pool, traction-related characteristics of the pool surface,or another characteristic whose measured value may affect a parameter ofoperation of robotic pool cleaner 10.

For example, a size of the pool may be indicative of an operation timeof robotic pool cleaner 10 in the pool to effectively clean the pool. Ashape of the pool may be indicative of direction of travel of roboticpool cleaner 10 in order to efficiently clean the pool surfaces. Alocation of an obstacle may be utilized to control motion of roboticpool cleaner 10 to avoid the obstacle or to modify a direction of travelso as to effectively disengage after encountering the obstacle. Atraction-related characteristic may be indicative of a manner orlocomotion (e.g., maximum speed, minimum normal force, or otherparameter) of robotic pool cleaner 10 that may avoid slipping.

For example, movement of robotic pool cleaner 10 may be monitored whiletravelling on the floor of the pool in order to measure a surfacecharacteristic in the form of a size, shape, both of a pool.

FIG. 3A schematically illustrates measurement of dimensions ofrectangular pool during execution of the navigation method depicted bythe flowchart in FIG. 2.

A size of rectangular pool 40 may be characterized by a length andwidth. In some cases, robotic pool cleaner 10 may be configured in adefault mode that assumes a rectangular pool 40. In some cases, anoperator of robotic pool cleaner 10 may operate a control to indicatethat a pool to be cleaned is a rectangular pool 40.

When beginning to measure a size of rectangular pool 40, robotic poolcleaner 10 may be located at starting point 42. For example, startingpoint 42 may represent a location at which robotic pool cleaner 10 isplaced in rectangular pool 40, or a location of robotic pool cleaner 10execution of pool cleaner navigation method 100 is initiated (e.g., inresponse to a command that is generated by controller 31 or by anoperator of robotic pool cleaner 10).

Robotic pool cleaner 10 may begin to travel along initial path untilencountering pool wall 41 a at point 48 a. The direction of initial path44 may be arbitrary. One or more sensors may detect the encounter ofrobotic pool cleaner 10 with pool wall 41 a at point 48 a. For example,the encounter with pool wall 41 a at point 48 a may be detected by aproximity sensor, may be detected by an accelerometer, may be detectedvia resistance to operation of motor 28, or may be detected otherwise.

Upon encountering pool wall 41 a at point 48 a, robotic pool cleaner 10may be configured to depart from pool wall 41 a along path segment 46 ain a direction that is perpendicular to pool wall 41 a. For example, twoor more laterally displaced distance sensors may indicate an orientationof robotic pool cleaner 10 relative to pool wall 41 a at point 48 a.Controller 31 may then be configured to cause robotic pool cleaner 10 toreverse its direction of travel to depart from pool wall 41 a whileturning to a direction of travel that is perpendicular to pool wall 41a.

Alternatively or in addition, an operator may place robotic pool cleaner10 in rectangular pool 40 while oriented such that initial path 44 isapproximately perpendicular to pool wall 41 a. Thus, after encounteringpool wall 41 a, robotic pool cleaner 10 may simply reverse its directionof travel to travel along path segment 46 a.

Robotic pool cleaner 10 may travel along path segment 46 a untilencountering pool wall 41 b at point 48 b. During travel along pathsegment 46 a, travel of robotic pool cleaner 10 may be monitored. Forexample, rotation of one or more of locomotion wheels 14 may bemonitored to determine a total angle of rotation, a rate of rotation anda time of rotation (which many be multiplied or integrated to yield atotal angle of rotation), or a total number of rotations of propulsionwheel 14. The measured rotation angle while traveling along path segment46 a is proportional to a length of path segment 46 a, and thus aperpendicular distance between pool wall 41 a and pool wall 41 b (asshown in FIG. 3A, representing the width of rectangular pool 40). It maybe noted that the distance between pool wall 41 a and pool wall 41 b maybe expressed in the form of a total angle of rotation, or may bemultiplied by a conversion constant, e.g., a radius of propulsion wheel14, to yield a length in other units, e.g., standard units of length.

After encountering pool wall 41 b at point 48 b, robotic pool cleaner 10may depart from pool wall 41 b along path segment 46 b, perpendicular topool wall 41 b. After travelling a predetermined fraction of thedistance between pool wall 41 b and pool wall 41 a to point 48 c,robotic pool cleaner 10 may turn by 90° to travel along path segment 46c. Robotic pool cleaner 10 may travel along path segment 46 c untilencountering pool wall 41 c at point 48 d. At point 48 d, robotic poolcleaner 10 may reverse its direction of travel to travel along pathsegment 46 d. Robotic pool cleaner 10 may travel along path segment 46a, monitoring the rotation of locomotion wheels 14, until encounteringpool wall 41 d at point 48 e. The total rotation of locomotion wheels 14while travelling along path segment 46 d is proportional to the distancebetween pool wall 41 c and pool wall 41 d (as shown in FIG. 3A,representing the length of rectangular pool 40).

Thus, robotic pool cleaner 10 may measure a length and width rectangularpool 40.

In some cases, e.g., during travel along path segment 46 a or pathsegment 46 d, or when encountering pool walls 41 a-41 d, or at othertimes, one or more sensors 30 of robotic pool cleaner 10 may measure thedepth of rectangular pool 40 at different points. For example, a readingfrom sensor 30 in the form of pressure sensor may be indicative of adepth below the water surface, or a distance sensor may be configured tomeasure a distance to the water surface. The depth of the pool mayindicate a height of pool walls 41 a-41 d.

In some cases, robotic pool cleaner 10 may be configured to measure asurface characteristic in the form of a map of a perimeter of a pool,such as rectangular pool 40.

FIG. 3B schematically illustrates mapping a perimeter of a rectangularpool during execution of the navigation method depicted by the flowchartin FIG. 2.

Although FIG. 3B illustrates mapping a perimeter of a rectangular pool40, mapping of a polygonal, oval, curved, or irregularly shaped pool maybe performed in an identical manner.

Sensors 30 of robotic pool cleaner 10 may include distance sensor 56.For example, distance sensor 56 may include a proximity sensor, arangefinder sensor, or another sensor that may be used to measure adistance from a pool wall 41 a-41 d. Distance sensor 56 may operateusing a proximity- or distance-sensor technology (e.g., optical,acoustic, electromagnetic, mechanical, or other technology) known in theart.

Controller 31 may be configured to control robotic pool cleaner 10 totravel along perimeter route 50 parallel to pool walls 41 a-41-d at anapproximately constant distance 52 from the nearest pool wall 41 a-4 d,as measured by distance sensor 56. For example, when the pool wall iscurved (as in pool 60 in FIG. 4) or has an indented or concave section,controller 31 may be configured to constantly turn robotic pool cleaner10 so as to remain at instant distance 52 from the wall of the pool.When robotic pool cleaner 10 encounters a corner 54 (e.g., as detectedby a wall that blocks further forward travel), controller 31 may controlrobotic pool cleaner 10 to turn so as to travel parallel to theencountered wall. For example, when traveling along perimeter route 50parallel to pool wall 41 d toward pool wall 41 b, upon encountering poolwall 41 b at corner 54, robotic pool cleaner 10 may turn (left, in theexample shown) to travel along perimeter route 50 parallel to pool wall41 b.

When traveling along perimeter route 50, distance traveled (e.g.,rotation of locomotion wheels 14) and changes in orientation due toturning may be monitored. For example, a record of distances andorientations may be stored in data storage 34. The measured distance andorientation data may be interpreted to yield a map of the poolperimeter.

In the case of a rectangular pool 40, it may be sufficient to recorddistance traveled only along two segments of perimeter route 50 thatcover the entire length of two perpendicular walls. The recorded traveldistances may then give the length and width of rectangular pool 40. Inthe example shown, a distance traveled along route segment 50 arepresents the length of pool wall 41 b and the length of rectangularpool 40. The distance traveled along route segment 50 b represents thelength of pool wall 41 c and the width of rectangular pool 40.

An assessed pool characteristic may include a location of an obstacle inthe pool. e.g., on the floor of the pool. The obstacle may include astructure of the pool, such as a raised drain, or an object that cannotbe moved or removed by robotic pool cleaner 10 and that has been placedor dropped into the pool. The location of the obstacle may be specifiedrelative to a designated reference point.

FIG. 3C schematically illustrates designation or a reference point asdetermination of a location of an obstacle relative to the referencepoint during execution of the navigation method depicted by theflowchart in FIG. 2.

Although a pool 53 in the form of a rectangular pool 40 is shown in FIG.3C for convenience, the shape of the pool is irrelevant.

At one point during travel of robotic pool cleaner 10 in pool 53, thecurrent location of robotic pool cleaner 10 may be designated asreference point 55. For example, controller 31 may be configured todesignate a current location of robotic pool cleaner 10 as referencepoint 55 at a predetermined time or event during operation in pool 53.For example, a location where robotic pool cleaner 10 is activated orwhere it begins cleaning pool 53 may be designated as reference point55.

After designation of reference point 55, robotic pool cleaner 10 maydepart from reference point 55 by travelling along path 57. Duringtravel along path 57, controller 31 may monitor its distance traveledand its turning angles. Controller 31 may thus continually calculate itscurrent position relative to reference point 55.

For example, controller 31 may be configured to store in data storage 34a distance and direction traveled along a segment of path 57. Whenever adirection of travel of robotic pool cleaner 10 changes, the length anddirection of the previous segment may be stored in data storage 34.Thus, at any point in traveling along path 57, controller 31 may performvector addition of the various path segments so as to determine acurrent position of robotic pool cleaner 10 relative to reference point55.

In some cases, robotic pool cleaner 10 may, during its travel along path57, encounter an obstacle 58. For example, robotic pool cleaner 10 mayfind that continuing travel along path segment 57 a is blocked byobstacle 58. Controller 31 may control robotic pool cleaner 10 to travelalong detour path segment 57 b in order to circumvent obstacle 58. Themonitored changes in direction and distances travelled while travelingalong detour path segment 57 b may be analyzed to yield a position ofobstacle 58 relative to reference point 55. The position of obstacle 58may be recorded for future reference in data storage 34. Aftertravelling along detour path segment 57 b to circumvent obstacle 58,robotic pool cleaner 10 may continue to travel along path segment 57 c.

In some cases, obstacle 58 may be located near a corner of pool 53. Forexample, a raised drain of pool 53 may be located near a corner of pool53.

FIG. 3D schematically illustrates detection of an obstacle in a cornerduring execution of the navigation method depicted by the flowchart inFIG. 2.

For example, when robotic pool cleaner 10 travels along path 61 to acorner of pool 53, controller 31 may attempt to turn robotic poolcleaner 10 at point 63. Interference with turning robotic pool cleaner10 may be interpreted as indicating an obstacle 58 at point 63. Forexample, controller 31 may monitor a reading by a sensor of sensors 30(e.g., a compass, gyroscope, accelerometer, or other sensor) to indicatean actual rate of turning (e.g., change in orientation angle per unittime) of robotic pool cleaner 10. The measured actual rate of turningmay be compared with an expected rate of turning (e.g., as based on oneor more control commands that are generated by controller 31 for causingone or more of motor 28, transmission 20, or another component to causerobotic pool cleaner 10 to turn at a particular rate). If the measuredactual rate of turning is sufficiently different from the expected rate(e.g., as compared with a threshold ratio or difference), than presenceof obstacle 58 may be indicated. The location of obstacle 58 (e.g.,relative to reference point 55 or relative to a perimeter or dimensionsof pool 53) may be recorded for later reference in data storage 34.

An assessed pool characteristic may include an indication of a tractionlimit between locomotion wheels 14 (e.g., via tracks 16 or othertraction-increasing structure) and the pool surface. For example, thetraction limit may include a maximum speed of rotation of locomotionwheels 14 without slipping relative to the pool surface. For example,feedback from a brushless motor 28 or a rotation sensor of brush-typemotor may be analyzed to yield a speed of rotation of a rotating shaftor other rotating element of motor 28, of transmission 20, or oflocomotion wheels 14. Similarly, electrical power that is supplied tomotor 28 may also be monitored by controller 31. An increase in theratio of speed of rotation to motor power (e.g., above a predeterminedthreshold ratio) may be indicative of slipping. For example, controller31 may be configured to gradually increase the power that is provided tomotor 28 until slipping is detected at a slipping power. In some cases,the maximum slipping power may be compared with previously obtained data(e.g., either from data that is provided by a manufacturer or developerof robotic pool cleaner 10, or that was obtained during previousoperation of that robotic pool cleaner 10) to identify the pool surface,or a characteristic of the pool surface, with a previously identifiedtype of pool surface.

In some cases, the traction at various positions in pool 53 may bemapped, e.g., relative to reference point 55. For example, the tractionmay vary from location to location due to dirt or debris that is on thepool surface at each point, due to changes in slope of the pool floor orwalls at different positions, or other causes of local variations intraction.

The assessed pool characteristic may be utilized in setting the value ofa parameter of operation of robotic pool cleaner 10 (block 120). Settingthe value of the parameter may include modifying a previous value (e.g.,an initial or default value, or a previously modified value) of theparameter of operation.

For example, a measurement of dimensions of a rectangular pool 40, or ofa perimeter of a pool 53 of any shape, may be utilized to calculate anoperating time of robotic pool cleaner 40. Controller 31 may beconfigured to operate robotic pool cleaner 10 for a period of time thatmay have been previously determined to enable robotic pool cleaner 10 toclean the pool. The operating time may depend on the size of the pool.Controller 31 may apply an algorithm that calculates the duration of theoperating time based on the size of the pool. The algorithm may alsotake into account a maximum speed of travel of robotic pool cleaner 10,e.g., based on assessment of traction limits, or other dimensions orcharacteristics of the pool or its usage.

For example, an algorithm may assume that the operating time isproportional to the area of the pool floor. An algorithm may take intoaccount one or more additional factors, such as maximum speed, depth ofthe pool, presence of obstacles, shape of the pool, or other factors.

A measured shape of the pool, e.g., derived from a perimeter of thepool, may be utilized to calculate a direction of travel of robotic poolcleaner 10 after encountering a curved pool wall. The direction oftravel away from the wall may not be perpendicular to the wall, along anormal to the wall, as it typical when cleaning a rectangular pool 40.For example, when the walls of the pool are curved (e.g., circular,oval, or other curved shape), robotic pool cleaner 10 may efficientlycover the pool surfaces to clean the surfaces by traversing the poolalong substantially parallel paths. Thus, the direction of travel afterencountering a curved pool wall may not be directly determined by thedirection of the normal to the wall.

FIG. 4 schematically illustrates selection of a direction of travelafter encountering a curved wall during execution of the navigationmethod depicted by the flowchart in FIG. 2.

Robotic pool cleaner 10 may operate within curved pool 60. Robotic poolcleaner 10 may approach wall section 64 of curved pool 60 along approachpath 62 a. Upon encountering wall section 64, controller 31 may controlrobotic pool cleaner 10 to depart from wall section 64 along a departurepath 62 b whose direction does not coincide with, or is not parallel to,wall normal 66. For example, the direction of departure path 62 b may beselected to be parallel to approach path 62 a. As another example, thedirection of departure path 62 b may be determined in accordance withthe directions of approach path 62 a and of wall normal 66 at wallsection 64. For example, the location of wall section 64, and thus thecurvature or direction of wall normal 66 at wall section 64, may bedetermined by monitoring the location of robotic pool cleaner 10relative to a reference point 55 as well as monitoring the orientationof robotic pool cleaner 10 relative to a mapped shape of curved pool 60(e.g., mapped while monitoring the location of robotic pool cleaner 10,and thus of the map, relative to reference point 55).

A monitored location of robotic pool cleaner 10 relative to referencepoint 55 may be utilized to return robotic pool cleaner 10 to referencepoint 55. For example, after traveling along path 57 (FIG. 3C), roboticpool cleaner 10 may be monitored to be currently be located at path endpoint 57 d. When located at path end point 57 d, controller 31 may issueor receive a command to return to reference point 55. For example, whena time period for operation within a pool 53 has elapsed, controller 31may be configured to automatically operate robotic pool cleaner 10 toreturn to reference point 55. As another example, an operator of roboticpool cleaner 10 may operate a control to issue a command to return toreference point 55. Controller 31 may then operate robotic pool cleaner10 to travel along return path 59 to return to reference point 55 frompath end point 57 d. For example, the location of reference point 55 mayhave been selected as a convenient location for servicing roboticcleaner 10 or for extracting robotic pool cleaner 10 from pool 53.

A sensed traction limit may be utilized to limit the power that isprovided to motor 28 in order to prevent slipping and maximize traction.Alternatively or in addition, the sensed traction limit may be utilizedto determine an outflow rate from outflow port 24 (or, an inflow rate tointake port) so as to increase the normal force between locomotionwheels 14 and the pool surface. Increasing the normal force may increasethe traction, and thus enable increasing the maximum power that may beprovided to motor 28 without causing slipping.

An orientation of robotic pool cleaner 10 may be monitored as it climbsor descends a wall of a pool 53. Operation of robotic pool cleaner 10may be controlled to maintain contact of robotic pool cleaner 10 withthe wall.

FIG. 5 is a flowchart depicting a method of navigating robotic poolcleaner while ascending or descending a wall, in accordance withembodiment of the present invention. FIG. 6 schematically illustrates arobotic pool cleaner that is executing the method shown in FIG. 5.

Wall navigation method 200 may be executed by controller 31 of roboticpool cleaner 10 when robotic pool cleaner 10 is ascending or descendinga pool wall 71.

During ascending or descending pool wall 71, e.g., between pool floor 73and water level 70, an actual orientation of robotic pool cleaner 10,e.g., as measured by one or more orientation sensors (e.g., gyroscope,tilt sensor, compass, or other sensor), may be compared with an expectedorientation (block 210). For example, an expected orientation may beapproximately equal to the slope of pool wall 71 (e.g., vertical). Whileascending or descending pool wall 71, suction pump 26 may be operated tocause, or increase a rate of, intake of water through intake port 22 andoutflow 74 of water through outflow port 24. The effect of outflow 74may be to maintain contact between locomotion wheels 14 (or tracks 16)and pool wall 71. Thus, robotic pool cleaner 10 may be prevented fromtipping, e.g., with backward tipping motion 72 (pitch), with sidewaystipping (yaw), lateral tipping (roll), or at combination of the above,or from sliding downward. Furthermore, traction between locomotionwheels 14 and pool wall 71 may be maintained, to enable controlledmotion of robotic pool cleaner 10 on pool wall 71.

The comparison may check for a difference between the actual orientationand the expected orientation (block 220). Alternatively or in addition,a tipping motion, such as backward tipping motion 72 or another tippingmotion, may be detected by one or more a sensors 30 that are configuredto sense a rate of change of an orientation (e.g., a gyroscope,accelerometer, or other sensor).

If no difference is found, monitoring of the actual orientation andcomparing with the expected orientation continues (returning to block210).

If a difference is found, controller 31 may control operation of suctionpump 26 in coordination with motor 28 of robotic pool cleaner 10 torotate robotic pool cleaner 10 toward the expected orientation (block230). A difference may indicate the some or all of locomotion wheels 14may no longer be in contact with pool wall 71. For example, rotationtoward the expected orientation may maintain contact between locomotionwheels 14 and pool wall 71. Increasing a speed of operation of suctionpump 26 may increase outflow 74 and restore contact between locomotionwheels 14 and pool wall 71 correcting pitch and roll). For example,increasing the speed of operation of suction pump 26 in coordination ofrotating locomotion wheels 14 in a direction that tends to rotaterobotic pool cleaner 10 toward the expected orientation (e.g., to propelrobotic pool cleaner 10 toward a vertex of an angle between the currentand expected orientations, or otherwise) may tend to rotate robotic poolcleaner 10 in a direction that is opposite to backward tipping motion72. Once the contact is restored, locomotion wheels 14 may be operatedto restore an expected orientation (e.g., to correct any yaw).

According to some embodiments of the present invention, a system andmethod of controlling a pool cleaning robot, so as to accurately directits travel on the surface of the pool, is provided.

FIG. 7 illustrates a robotic pool cleaner 702, remotely controlled by ahand-held portable communication device 704 (e.g., a smartphone),according to some embodiments of the present invention. Typically, arobotic pool cleaner 702 (hereinafter—“pool cleaner” or “cleaner”, forbrevity) has a propulsion drive, which in some embodiments comprises anelectric drive motor 710 operatively coupled to drive tracks or wheels712. In some embodiments, the motor 710 is linked to the wheels 712 viaa transmission gear. In some embodiments, the motor 710 is linked to thewheels 712 via belt 714 (there may be some embodiments that have two ormore belts, e.g., one on either sides of the pool cleaner, as shown inthis figure, while other embodiments may have just one belt). In someembodiments of the invention, caterpillar tracks 716 may be provided,linking the wheels 712, so to aid the pool cleaner in locomotion.

An electric pump 720, which may draw its electricity from the mainspower supply 707, typically via a cable 705, is used to suck the water(or any other liquid that is contained in the pool) into a debris filter(not shown in this figure) via an inlet (not shown in this figure) thatmay be located at the bottom of the housing 708 of pool cleaner 702.While debris and dirt that is sucked into the pool cleaner may betrapped in the debris filter, water is expelled from the pool cleanervia outlet 722, which may be located on an upper surface (or on anyother surface) of the pool cleaner 702. A handle 724 may be provided forconvenient handling of the pool cleaner 702.

Alternatively, in some other embodiments, the propulsion drive may be awater jet propulsion drive, which is employed to propel the robot, thejet being produced by the suction pump or an independent pump.

In some embodiments, a propulsion drive (e.g., motor 710 in theembodiment shown in FIG. 1) may be controlled by an electroniccontroller 726. The controller may include a microprocessor ormicrocontroller, memory (which may be incorporated within themicroprocessor or microcontroller), motor control circuits forcontrolling the speed and/or rotational direction of at least one motor,and preferably also communication module. The controller may alsoinclude one or more sensors for sensing the position, movement ororientation of the pool cleaner. Such sensors may include, but are notlimited to, accelerometers, gyros, compasses, proximity sensors,pedometers or any combination thereof. The communication module may be aserial bus according to any known protocol, such as RS485, may be basedon a dedicated, unique protocol, or may be modulated over the powersupply cable 705. The robot controller may communicate with the powersupply of the robotic pool cleaner, which in some embodiments may belocated outside the pool, typically beyond a minimal predetermineddistance from the edge of the pool. In an alternative embodiment, therobotic pool cleaner may communicate wirelessly via an antenna locatedon a part of the pool cleaner (e.g., the housing, handle, etc.) whichextends beyond the surface of the pool, for example, when the roboticpool cleaner climbs a vertical surface of the pool to the waterline.Controller 726 may receive commands via the communication module to turnthe pool cleaner in different directions (e.g., clockwise,anticlockwise), to change the direction of travel, to advance a selecteddistance, to advance until contact with a wall is detected, to turn aselected angle, to begin or terminate a cleaning cycle, to climb a wall,or a sequence of any of these commands, etc. The controller 726 may alsotransmit information pertaining to its' actual movement as detected byits' sensors. The controller 726 may also transmit data pertaining tothe quality or characteristics of the water (or other liquid) it issubmerged in, as detected by its' sensors. Such data may include, forexample, water temperature, free chlorine concentration or level, and pHlevel of the water.

According to some embodiments of the invention, a computer program(hereinafter—“application”) is provided, typically running on a portablecomputing device 704, such as a smartphone, tablet computer, laptop,etc., (hereinafter—also “smartphone” for brevity) which may provide auser interface for an operator of the pool cleaner. The application,which may include a graphical user interface, may allow user interactionwith the robotic pool cleaner.

The application may employ some or all of the smartphone 704 featuresand capabilities, for computation, input and output, such as, itsprocessor, graphical processor, memory, input/output (I/O) device and/orI/O interface (e.g., camera, touch-screen 706, keyboard, etc.), sensors(e.g., gyroscope, accelerometer, microphone, etc.), etc.

According to some embodiments of the present invention, smartphone 704may communicate with pool cleaner 702, and in particular with controller726 over a communication channel 709, or channels. In some embodimentsthe communication may be carried out using a short-range communicationtechnology (e.g., Bluetooth™), for example, between smartphone 704 and acommunication module 703 of mains power supply 707, which may furthercommunicate with controller 726 over a communication channel on cable705.

FIG. 8 illustrates method and device for remotely controlling a roboticpool cleaner according to some embodiments of the present invention.

According to some embodiments of the invention, a user may activate adedicated application on a smartphone 704. The application may include agraphical user interlace (GUI) that is designed to present to the usergraphics and information on the screen 706 of smartphone 704.

In some embodiments of the present invention, such system and method maybe used for transmitting at least one parameter of the pool outline orcontours to the pool cleaning robot.

In some embodiments of the present invention, such system and method maybe enable a robotic pool cleaner to transmit to an external computingdevice coordinates or location information in a swimming pool, such asfor example location information on the location of that cleaner orother such cleaner or cleaners, or location of obstacles.

For example, the GUI may include an illustration 802 of a pool, whichmay be selected from a group of illustrations of pools (e.g., typicalshapes of pools, such as, for example, rectangle, circle, ellipse, andother shapes). In some embodiments of the invention, the illustration ofthe pool is determined based on obtaining location informationpertaining to the actual pool, for example GPS data, or otherinformation. In some embodiments of the invention, the user registersonce and enters information relating to the pool cleaner and/or the poolcleaning system. In some other embodiments of the invention, locationdata may be obtained from the pool cleaner, when it travels inside thepool. For example, the pool cleaner may include a GPS receiver and everytime the pool cleaner reaches the waterline (e.g., climbing a side wallor otherwise surfacing), exposing an antenna, wireless receiver ortransmitter (e.g., when it changes its direction of travel as a resultof contacting the wall), location data may be transmitted from the poolcleaner to the controller, or saved and transmitted at a later time, sothat eventually the location of the walls of the pool, and/or thecontour (shape) of the pool may be determined. In some otherembodiments, location information and/or data on the location and/or theshape of the pool may otherwise be obtained. A graphical presentation(e.g., illustration) of the pool may be thus shown by the application onthe screen 706 of smartphone 704. In some embodiments, the dimensionsand shape of the illustrated pool may be scaled to the actual size andshape of the pool.

In some embodiments, the user may input a command via the user inputinterface, for example, by tapping, sliding a finger, making a gesture,inputting text using a real or virtual keyboard, providing a vocalcommand, etc., for directing a pool cleaner to a particular targetposition on a pool surface, to follow a particular path in the pool, toperform a pattern of movement, or to maintain within or outside anindicated zone of the pool. In some embodiments of the invention, theuser may command the pool cleaner to select different operating modesfor the pool cleaner in or outside the indicated zone, for example,alter the suction level of the pump, stay longer in or outside thatzone, travel slower or faster, climb or refrain from climbing the walls,etc.

By means of the user input interface, e.g., touch input screen, which istypically a feature of portable computing devices such as tabletcomputers and smartphones, the user can point to the actual position ofthe pool cleaner in the pool (e.g., point at a graphical representationof the pool cleaner on the graphical representation of the pool on thedisplay of the smartphone, or point at a position on the graphicalrepresentation of the pool on the display of the smartphone), then movethe finger or otherwise indicate, e.g., by a gesture, a desired path, tothe position on the graphical representation of the pool displayed onthe screen representative of the new position of the cleaner where theuser desires it to travel to. The application may convert the fingermovement to a series of commands of directions or vectors and distanceto travel between the two points, and transmit the sequence to the poolcleaner power supply, which may transmit the commands to the cleaneritself. The cleaner may then travel to the position in the actual poolreferenced by the user in the diagram or outline of the pool in the userinterface. For example, the user may indicate a path 812 on touchscreen706, by tapping, sliding a finger, making a gesture, or by inputtingtext using a real or virtual keyboard, providing a vocal command of adesired course for the robotic pool cleaner to travel across the surfaceof the pool. In some embodiments of the invention, a graphicalrepresentation 820 of pool cleaner 702 may be presented on screen 706,to aid the user in locating the current location of the pool cleaner orshow a position in the pool that the user wishes for the pool cleaner toassume. In some embodiments, in order to distinguish between a currentposition of the pool cleaner in the pool and a desired position for thepool cleaner different colors or different graphical representations maybe used.

In some embodiments, such system and method may be used to pre-program apath of a pool cleaner's travel on a pool surface.

In some other embodiments of the invention, the user may select orotherwise input a command to cause the pool cleaner to travel a pathhaving a particular pattern. In some embodiments, the pattern for theselected path may be selected from a list of available patterns that maybe presented to the user, by the application, on screen 706 ofsmartphone 704.

The input, or selected, path 812 may be, in some embodiments of thepresent invention, translated by processor 701 (shown in dashed lines,inside smartphone 704) to a command, or series of commands, which may betransmitted to controller 726 (see FIG. 1) of the pool cleaner 702. Thecontroller 726 may then cause the pool cleaner 702 to travel in thedesired path 804.

In some embodiments, the smartphone may transmit information relating toits position to the pool cleaner. Typically, the smartphone is held bythe operator of the pool cleaner, and therefore the position of thesmartphone coincides with the position of the operator. The position ofthe smartphone (in other words, the position of the user) may beindicated graphically on the representation of the pool displayed on thescreen of the smartphone.

When the pool cleaner is operating in a shallow part of the pool, or isoriented vertically, at or near the pool waterline, the pool cleaner mayobtain via GPS (e.g., via an antenna, when the pool cleaner is surfaced)data relating to its own position and may calculate its own positionrelative to that of the smartphone, and hence its position relative tothe position of the operator. When submerged, the pool cleaner may alsocalculate its current position by measuring the direction (e.g., by agyroscope or magnetic compass) and distance (as a function of robotspeed and time traveled) of travel from the last position fixed (e.g.,by GPS). The current location of the pool cleaner, either when surfaced(by determining its exact location) or when submerged (calculated) maybe presented on the graphical representation of the pool as displayed onthe smartphone screen.

The robot may then calculate a vector of travel to the part of the poolnearest to the position of the smartphone (and thus, to the operator).The position of the smartphone, as determined from its GPS receiver, maybe transmitted by the smartphone to the robot at predeterminedintervals, and the robot may subsequently re-calculate the requireddirection of travel to reach the part of the pool closer to theoperator.

The robot may be commanded to interrupt, or cease its current operationand to travel to the known position of the operator issuing thecommand—a “homing” instruction which will cause the pool cleaner totravel to the operator. For example, if the operator notices a patch ofdebris close to where he or she is standing, the operator may initiate a“homing” command, causing the robot to alter its course of travel andmove to the part of the pool closest to where the operator is standing.The pool cleaner may be commanded to stop upon contact with the poolwall, or to continue to the pool waterline, or to restart its cleaning,cycle from the point of contact with the pool wall, depending on thecommand issued.

FIG. 9 illustrates a smartphone with GUI of a control application for apool cleaner, and a cooperating smart-watch, according to someembodiments of the present invention.

In some embodiments of the present invention, the application may bedesigned to operate in the following manner:

a. a menu screen 900 may be presented to the user, from which the usermay select various functions 904, by tapping or otherwise selecting atext describing each function or selecting a bullet 902 or othergraphical element associated with that function;

b. the user selections are translated into commands which aretransmitted from smartphone 704 to the power supply 707 of the roboticpool cleaner 702 via a communication channel 709, e.g., wirelesscommunication standard such as Bluetooth™, Wi-Fi, etc.;

c. the power supply transmits the commands, e.g., using a physicalprotocol, such as a serial bus which communicates the commands to thepool cleaner (e.g., to the controller 726).

The robotic pool cleaner may also transmit data from the on-boardcontroller 726 via a communication channel (e.g., serial communication)to the power supply 707, which may further transmit the data to thesmartphone 704 for display to the user on screen 706.

The presented data may be, for example, sensor data from one or moresensors mounted on the pool cleaner, data related to the control of thepool cleaner, and/or acknowledgement of commands sent to the poolcleaner. The data may be further processed (for example filtering, orcombining data from two or more sensors, or from sequential readings ofone sensor) by the pool cleaner controller, or by the power supply, orby the smartphone, or any combination thereof. In some embodiments ofthe invention, processing of sensor data may be performed by the poolcleaner controller.

In some embodiments of the invention, the user may employ an imagingsensor of the smartphone (e.g., a camera) to create a digital image ofthe pool outline. The application may process the image, using an imageprocessing technique, to retrieve the outline of the pool and scale thetrue dimensions of each wall or contour, for example, according to aninitial reference input by the user. A pedometer function, eitherprovided as part of the portable computing device or by an externaldevice such as a smart-watch 910, which can communicate with thesmartphone 704 (e.g., via Bluetooth or WiFi communication channel), maybe employed to input the outline and dimensions of the pool. By thismethod, the user walks around the perimeter of the pool, while thepedometer function records the movements of the user and transmits thedata to the application. The application may then display an outline ofthe pool to the user on screen 706, the outline serving as a referencefor controlling movement of the pool cleaner in the pool.

FIG. 10 illustrates a smartphone with GUI of a control application for apool cleaner, according to some embodiments of the present invention.

The user may also input a cleaning command, for example, by rapidlymoving a finger in a fore and aft, circular, repetitive, or periodicmovement 1000 over screen 706 at the position on the pool outline wherethe user desires the cleaner to work more thoroughly. Alternatively, adouble tap 1002 on screen 706 may initiate the cleaning command at thedesired position in the pool corresponding to the position of the doubletap 1002 on the pool shape 802 on the screen 706. When receiving thecleaning command, the pool cleaner is caused to perform fore and aftmotion with limited travel and turning motion so as to clean theimmediate area more thoroughly.

At the end of the cleaning cycle, the operator may initiate a command tobe transmitted to the pool cleaner to move to a designated part of thepool where it is convenient to retrieve the cleaner and remove it fromthe pool for cleaning, storage etc. In some cases, it may be desired toremove the pool cleaner from the pool at the same location it wasintroduced to the pool, and at this location the power cable, in thecase of a pool cleaner powered by a poolside power supply, crosses thepool edge onto the surface of the pool. The command to move the poolcleaner towards the position for retrieval may initiate operation of acamera incorporated in the smartphone, which may obtain an image of thepool, and determine the position of the pool cleaner on the surface ofthe pool and the position where the pool cleaner power cable crosses thepool edge. The handheld controller, or smartphone, may then transmit asequence of commands to the pool cleaner, directing its travel towardsthe position where the cable enters the water. The pool cleaner may becommanded to stop upon detecting contact with the pool wall, or maycontinue to climb to the waterline.

The user may also indicate the point within the pool where it is desiredthat the pool cleaner be located at termination of the cleaning cycle.For example, should the user find that a particular part of the pool ismost convenient for retrieving the pool cleaner, the user may tap on aselected position on the pool 802 displayed on screen 706 smartphone 704to cause the cleaner to he directed to the corresponding point in thepool and a command may be issued by the application to reference thepool cleaners' movement relative to the position. At the end of thecleaning operation (e.g. cleaning cycle), the pool cleaner may retraceits' path to this position, as previously stored in a memory used by thecontroller.

In some embodiments of the invention, the user may also determine inadvance of the pool cleaners' operation, the intended path of travel.For example, the user may prefer that for a particular cleaning cycle,the pool cleaner thus remaining in a certain part of the pool, forexample the deeper portion or section near overhanging vegetation whichis prone to accumulating more dirt than, perhaps, other parts of thepool. The user may indicate the approximate desired path of the poolcleaner within the pool by moving a finger over the outline of the poolas displayed on the portable computing devices' screen. Alternatively,the user may indicate, with finger movement or other manual gesture, thepart of the pool surface which it is desired for the pool cleaner tocover. The application may translate the position indicated on thescreen to a series of commands defining the maximum distance the poolcleaner is to travel away from a pool wall before reversing direction.

FIG. 11 illustrates a method for remotely operating a robotic poolcleaner, according to some embodiments of the present invention. Method1100 may include providing 1102 a robotic pool cleaner comprising ahousing; a propulsion drive configured to propel the robotic poolcleaner along a surface of a pool; a pump for drawing liquid from thepool into the housing, so as to trap dirt and debris from the surface ofthe pool into a filter; a controller configured to communicate with aportable communication device, and control the propulsion drive inaccordance with commands received from a the portable communicationdevice. The method 1100 may further include, using a mobilecommunication device 1101, obtaining 1104 one or more characteristics ofa surface of the pool; displaying 1106 a graphical representation of thepool on a display of the portable communication device; receiving 1108 auser input from a user via an input interface of the portablecommunication device; translating 1110 the user input into a command;and transmitting 1112 the command to a controller of the robotic poolcleaner, for execution by the robotic pool cleaner.

It should be understood with respect to any flowchart referenced hereinthat the division of the illustrated method into discrete operationsrepresented by blocks of the flowchart has been selected for convenienceand clarity only. Alternative division of the illustrated method intodiscrete operations is possible with equivalent results. Suchalternative division of the illustrated method into discrete operationsshould be understood as representing other embodiments of theillustrated method.

Similarly, it should be understood that, unless indicated otherwise, theillustrated order of execution of the operations represented by blocksof any flowchart referenced herein has been selected for convenience andclarity only. Operations of the illustrated method may be executed in analternative order, or concurrently, with equivalent results. Suchreordering of operations of the illustrated method should be understoodas representing other embodiments of the illustrated method.

Different embodiments are disclosed herein. Features of certainembodiments may be combined with features of other embodiments; thuscertain embodiments may be combinations of features of multipleembodiments. The foregoing description of the embodiments of theinvention has been presented for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise form disclosed. It should be appreciated bypersons skilled in the art that many modifications, variations,substitutions, changes, and equivalents are possible in light of theabove teaching. It is, therefore, to be understood that the appendedclaims are intended to cover all such modifications and changes as fallwithin the true spirit of the invention.

While certain features of the invention have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents will now occur to those of ordinary skill in the art. It is,therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

1. A method for remotely operating a robotic pool cleaner, the methodcomprising: providing a robotic pool cleaner comprising a housing; apropulsion drive configured to propel robotic pool cleaner along asurface of a pool; a pump for drawing liquid from the pool into thehousing, so as to trap dirt and debris from the surface of the pool intoa filter, a controller configured to communicate with a portablecommunication device, and control the propulsion drive in accordancewith commands received from a the portable communication device; usingthe portable communication device, obtaining one or more characteristicsof a surface of the pool; displaying a graphical representation of thepool on a display of the portable communication device; receiving a userinput from a user via an input interface of the portable communicationdevice; translating the user input into a command; and transmitting thecommand to a controller of the robotic pool cleaner, for execution bythe robotic pool cleaner.
 2. The method of claim 1, wherein obtainingone or more characteristics of a surface of the pool comprises receivingdata transmitter from the robotic pool cleaner or receiving data inputvia a user input interface of the portable communication device.
 3. Themethod of claim 1, further comprising, using the portable communicationdevice, displaying a current location of the pool cleaner in the pool onthe graphical representation of the pool as displayed on the display. 4.The method of claim 1, wherein the user input comprises indication of adesired target position in the pool for the pool cleaner to travel to.5. The method of claim 1, wherein the user input comprises indication ofa particular palls to be traveled by the pool cleaner.
 6. The method ofclaim 1, wherein the user input comprises indication of a pattern ofmovement.
 7. The method of claim 1, wherein the user input comprisesindication to maintain a position of the pool cleaner within or outsidean indicated zone of the pool.
 8. The method of claim 1, wherein theuser input is selected from the group of inputs consisting of tapping,sliding a finger, making a gesture, inputting text using a real orvirtual keyboard, and providing a vocal command.
 9. The method of claim1, wherein the user input comprises a homing instruction and wherein thecommand causes the pool cleaner to travel to a current location of theuser.
 10. The method of claim 1, wherein the obtaining of said one ormore characteristics of a surface of the pool comprises recordingmovement of the user around a perimeter of the pool.
 11. The method ofclaim 1, further comprising using a camera of the portable communicationdevice for the user input.
 12. A robotic pool cleaner comprising: ahousing; a propulsion drive configured to propel the robotic poolcleaner along a surface of a pool; a pump for drawing liquid from thepool into the housing, so as to trap dirt and debris from the surface ofthe pool into a filter; and a controller configured to communicate witha portable communication device, and control the propulsion drive inaccordance with commands received from a the portable communicationdevice; wherein the controller is further configured to receive, andcause the robotic pool cleaner to execute, a command from a portablecommunication device that has obtained one or more characteristics of asurface of the pool; displayed a graphical representation of the pool ona display of the portable communication device; received a user inputfront a user via an input interface of the portable communicationdevice; translated the user input into a command; and transmitted thecommand to a controller of the robotic pool cleaner, for execution bythe robotic pool cleaner.
 13. A non-transitory computer readable mediumfor remotely operating a robotic pool cleaner, having stored thereoninstructions that when executed on a processor of will cause theprocessor to: obtain one or more characteristics of a surface of a pool;display a graphical representation of the pool on a display; receive auser input from a user via an input interface; translate the user inputinto a command; and transmit the command via a communication channel toa controller of the robotic pool cleaner, for execution by the roboticpool cleaner.
 14. The non-transitory computer readable medium of claim13, wherein obtaining one or more characteristics of a surface of thepool comprises receiving data transmitter from the robotic pool cleaneror receiving data input via a user input interface of the portablecommunication device.
 15. The non-transitory computer readable medium ofclaim 13, having stored thereon instructions that when executed on aprocessor of will cause the processor to display a current location ofthe pool cleaner in the pool on the graphical representation of the poolas displayed on the display.
 16. The non-transitory computer readablemedium of claim 13, wherein the user input comprises indication of adesired target position in the pool for the pool cleaner to travel to.17. The non-transitory computer readable medium of claim 13, wherein theuser input comprises indication of a particular path to be traveled bythe pool cleaner.
 18. The non-transitory computer readable medium ofclaim 13, wherein the user input comprises indication of a pattern ofmovement.
 19. The non-transitory computer readable medium of claim 13,wherein the user input comprises indication to maintain a position ofthe pool cleaner within or outside an indicated zone of the pool. 20.The non-transitory computer readable medium of claim 13, wherein theuser input comprises a homing instruction and wherein the command causesthe pool cleaner to travel to a current location of the user.